const { error } = require('console')
const express = require('express')

var router = express.Router()
//  中间件一定要在路由之前注册，中间的函数一定要加上next(),否则肯定不会生效。另外next（）后面不能再写代码了，next表示已经结束可=了
const mw = function (req, res, next) {
  console.log('局部生效的中间件1')
  next()
}

const mw2 = function (req, res, next) {
  console.log('局部生效的中间件2')
  next()
}

router.use(express.json())
// 挂载具体的路由

router.get('/user/list', mw, mw2, (req, res) => {
  res.send('Get user list' + req.startTime)
})

// 服务端可以使用req.body来接收客户端发送的请求
// 服务器没有配置表单配置中间件，默认是拿不到的
router.post('/user/add', (req, res) => {
  console.log(req.body)
  res.send(req.body)
})

router.post('/user/books', (req, res) => {
  console.log(req.body)
  res.send('ok')
})

router.get('/err', (req, res) => {
  throw new Error('服务器内部发生了错误！')
  res.send('error page')
})

// router.use((err, req, res, next) => {
//   console.log('Error', +err.message)
//   res.send('Error:' + err.message)
// })
// 向外导出路由

module.exports = router
